650B - Image Preview - CodeForces Solution


binary search brute force dp two pointers *1900

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>

using namespace std;

const int N=1e6+10;

int n,a,b,t;

char s[N],s2[N];

int c[N];

int check(int x){

	for(int i=n-x+1;i<=n;i++){

	    if(i==n-x+1||i==n){

	        if(c[i+x-1]-c[i-1]<=t){

	         //   cout<<i<<endl;

	            return 1;

	        }

	    }

	  else{

	      if(c[i+x-1]-c[i-1]+a*min(n-i,i+x-1-n)<=t){

	          

	         // cout<<i<<endl;

	          return 1;

	      }

	    }

	  }

		

	

	return 0;

}

int main(){

    cin>>n>>a>>b>>t;

   scanf("%s",s2+1);

   for(int i=1;i<=n;i++)s[i]=s2[i];

   for(int i=1;i<=n;i++){

   	s[i+n]=s2[i];

   }

   for(int i=1;i<=n*2;i++){

     // cout<<i<<" "<<s[i]<<endl;

   	  if(s[i]=='w')c[i]=b+a+1;

   	  else c[i]=a+1;

   }

  

   t+=a;

   for(int i=1;i<=n*2;i++){

   	c[i]=c[i-1]+c[i];

  //	cout<<i<<" "<<c[i]<<endl;

   }

 //  n++;

  // check(8);

   

   

  int l=1,r=n;

  n++;

  while(l<=r){

  	int mid=l+r>>1;

  	if(check(mid))l=mid+1;

  	else r=mid-1;

  }

  cout<<r<<endl;

}


Comments

Submit
0 Comments
More Questions

112. Path Sum
1556A - A Variety of Operations
136. Single Number
169. Majority Element
119. Pascal's Triangle II
409. Longest Palindrome
1574A - Regular Bracket Sequences
1574B - Combinatorics Homework
1567A - Domino Disaster
1593A - Elections
1607A - Linear Keyboard
EQUALCOIN Equal Coins
XOREQN Xor Equation
MAKEPAL Weird Palindrome Making
HILLSEQ Hill Sequence
MAXBRIDGE Maximise the bridges
WLDRPL Wildcard Replacement
1221. Split a String in Balanced Strings
1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie